package com.triones.yjj.controller.api.wx;

import cn.dev33.satoken.annotation.SaIgnore;
import com.triones.framework.common.wxpay.WechatPay;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 * 特约商户
 *
 * @Author: triones
 */
@SaIgnore
@Slf4j
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/api/wx/subMerchant")
public class SubMerchantController {

//    private WechatPayRequest wechatPayRequest;

//    private CloseableHttpClient wxPayClient;
//
//    private ToolService toolService;
//
//    private final SubMchMapper subMchMapper;

//    @PostMapping("/uploadImage")
//    public String uploadImageByFile(@RequestParam("file") MultipartFile file) throws Exception {
//        // 微信地址
//        String url = "https://api.mch.weixin.qq.com/v3/merchant/media/upload";
//        URI uri = new URI(url);
//        try (InputStream inputStream = new ByteArrayInputStream(file.getBytes())) {
//            String sha256 = DigestUtils.sha256Hex(inputStream);
//            // 文件名称取Url地址字符串,比如: https://www.baidu.com/img/pc_675fe66eab33abff35a2669768c43d95.png
//            String fileName = file.getOriginalFilename();
//            String res = wechatPayRequest.wechatPayUploadHttpPost(file, fileName, sha256, uri);
//
//            // 返回媒体文件标识 Id
//            JSONObject jsonObject = JSON.parseObject(res, JSONObject.class);
//            Object mediaId = jsonObject.get("media_id");
//            return mediaId == null ? "" : mediaId.toString();
//        }
//    }
//
    @GetMapping("/urlImage")
    public String uploadImageByHttp(String imageUrl) throws Exception {
        System.out.println("imageUrl = " + imageUrl);
        // https://www.baidu.com/image/test.jpg
        return WechatPay.upload("aaa",imageUrl);
        }

//    /**
//     * 特约商户进件-申请
//     * @param dto
//     * @return
//     * @throws GeneralSecurityException
//     * @throws IOException
//     * @throws HttpCodeException
//     * @throws NotFoundException
//     * @throws URISyntaxException
//     */
//    @PostMapping(value = "/shopSend")
//    @Transactional(rollbackFor = Exception.class)
//    public R<Void> shopSend(@RequestBody SubMchDO dto) throws Exception{
//        /**
//         * 保存或者修改
//         */
//        if (dto.getId() != null) {
//            //修改
//            toolService.updateSubMch(dto);
//        } else {
//            //保存
////            String businessCode = wechatPayRequest.createBusinessCode();
//            String businessCode = null;
//            dto.setBusinessCode(businessCode);
//            toolService.saveSubMch(dto);
//        }
//
//        //组装微信报文,发送json
//        JSONObject  rootNode = new JSONObject();
//        //业务申请编号必填
//        rootNode.put("business_code",dto.getBusinessCode());
//
//        /**
//         * 超级管理员信息
//         */
//        JSONObject  contactInfo = new JSONObject();
//        //超级管理员类型
//        contactInfo.put("contact_type", SuperUserContactInfo.CONTACT_TYPE);
//        //超级管理员姓名
//        contactInfo.put("contact_name", WechatPayRequest.rsaEncryptOAEP(SuperUserContactInfo.CONTACT_NAME));
//        //联系手机
//        contactInfo.put("mobile_phone", WechatPayRequest.rsaEncryptOAEP(SuperUserContactInfo.MOBILE_PHONE));
//        //联系邮箱
//        contactInfo.put("contact_email", WechatPayRequest.rsaEncryptOAEP(SuperUserContactInfo.CONTACT_EMAIL));
//        rootNode.put("contact_info",contactInfo);
//
//        /**
//         * 主体资料
//         */
//        //判断主体类型
//        String subjectType = dto.getMerchanType();
//        JSONObject subjectNode = new JSONObject();
//        //主体类型(个体或者企业)
//        subjectNode.put("subject_type",subjectType);
//        //是否是金融机构
//        subjectNode.put("finance_institution",false);
//        //个体户
//        if("SUBJECT_TYPE_INDIVIDUAL".equals(subjectType)){
//            /**
//             * 营业执照 营业执照主体为 个体户/企业（必填）
//             */
//            JSONObject licenseNode = new JSONObject();
//            //营业执照照片（必填）
//            licenseNode.put("license_copy",wechatPayRequest.wechatPayUploadHttpPostUrl(dto.getYyzzImg()));
//            //注册号/统一社会信用代码（必填）
//            licenseNode.put("license_number",dto.getLicenseNumber());
//            //商户名称（必填）
//            licenseNode.put("merchant_name",dto.getLicenseName());
//            //个体户经营者/法人姓名（必填）
//            licenseNode.put("legal_person",dto.getLegalPerson());
//            subjectNode.put("business_license_info",licenseNode);
//
//            /**
//             * 经营者/法人身份证件
//             */
//            //经营者/法人身份证件（必填）
//            JSONObject  identityNode = new JSONObject();
//            //证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            identityNode.put("id_holder_type","LEGAL");
//            //证件类型（默认 中国大陆居民-身份证）
//            identityNode.put("id_doc_type","IDENTIFICATION_TYPE_IDCARD");
//
//            JSONObject cardNode = new JSONObject();
//            //身份证信息,当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//            //身份证人像面照片
//            cardNode.put("id_card_copy",wechatPayRequest.wechatPayUploadHttpPostUrl(dto.getIdCardFrontImg()));
//            //身份证国徽面照片
//            cardNode.put("id_card_national",wechatPayRequest.wechatPayUploadHttpPostUrl(dto.getIdCardVersoImg()));
//            //身份证姓名
//            cardNode.put("id_card_name",WechatPayRequest.rsaEncryptOAEP(dto.getLegalPerson()));
//            //身份证号码
//            cardNode.put("id_card_number",WechatPayRequest.rsaEncryptOAEP(dto.getIdCardNumber()));
//            //有效期限开始日期
//            cardNode.put("card_period_begin",dto.getCardPeriodBegin());
//            //有效期限结束日期
//            cardNode.put("card_period_end",dto.getCardPeriodEnd());
//            identityNode.put("id_card_info",cardNode);
//            subjectNode.put("identity_info",identityNode);
//
//        //企业
//        }else if("SUBJECT_TYPE_ENTERPRISE".equals(subjectType)){
//            //营业执照 主体为个体户/企业，必填
//            JSONObject licenseNode = new JSONObject();
//            //营业执照照片 必填
//            licenseNode.put("license_copy",wechatPayRequest.wechatPayUploadHttpPostUrl(dto.getYyzzImg()));
//            //注册号/统一社会信用代码 必填
//            licenseNode.put("license_number",dto.getLicenseNumber());
//            //商户名称 必填
//            licenseNode.put("merchant_name",dto.getLicenseName());
//            //个体户经营者/法人姓名 必填
//            licenseNode.put("legal_person",dto.getLegalPerson());
//            subjectNode.put("business_license_info",licenseNode);
//
//            //最终受益人信息列表(UBO)  仅企业需要填写。
//            JSONArray jsonArray = new JSONArray();
//            JSONObject ownerNode = new JSONObject();
//            //证件类型
//            ownerNode.put("ubo_id_doc_type","IDENTIFICATION_TYPE_IDCARD");
//            //证件正面照片
//            ownerNode.put("ubo_id_doc_copy",wechatPayRequest.wechatPayUploadHttpPostUrl(dto.getIdCardFrontImg()));
//            //证件反面照片 若证件类型为身份证，请上传国徽面照片。3、若证件类型为护照，无需上传反面照片。
//            ownerNode.put("ubo_id_doc_copy_back",wechatPayRequest.wechatPayUploadHttpPostUrl(dto.getIdCardVersoImg()));
//            //证件姓名
//            ownerNode.put("ubo_id_doc_name",WechatPayRequest.rsaEncryptOAEP(dto.getLegalPerson()));
//            //证件号码
//            ownerNode.put("ubo_id_doc_number",WechatPayRequest.rsaEncryptOAEP(dto.getIdCardNumber()));
//            //证件居住地址
//            ownerNode.put("ubo_id_doc_address",WechatPayRequest.rsaEncryptOAEP(dto.getIdCardAddress()));
//            //有效期限开始日期
//            ownerNode.put("ubo_period_begin",dto.getCardPeriodBegin());
//            //有效期限结束日期
//            ownerNode.put("ubo_period_end",dto.getCardPeriodEnd());
//            jsonArray.add(ownerNode);
//            subjectNode.put("ubo_info_list",jsonArray);
//
//            //经营者/法人身份证件 必填
//            JSONObject  identityNode = new JSONObject();
//            //证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            identityNode.put("id_holder_type","LEGAL");
//            //经营者/法人是否为受益人
//            identityNode.put("owner","true");
//            //证件类型  当证件持有人类型为法人时，填写。其他情况，无需上传。
//            identityNode.put("id_doc_type","");
//            //法定代表人说明函  当证件持有人类型为经办人时，必须上传。其他情况，无需上传。
//            identityNode.put("authorize_letter_copy","");
//
//            JSONObject  cardNode = new JSONObject();
//            //身份证信息  当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//            //身份证人像面照片
//            cardNode.put("id_card_copy","");
//            //身份证国徽面照片
//            cardNode.put("id_card_national","");
//            //身份证姓名
//            cardNode.put("id_card_name","");
//            //身份证号码
//            cardNode.put("id_card_number","");
//            //只有企业传
//            //身份证居住地址 主体类型为企业时，需要填写。其他主体类型，无需上传。
//            cardNode.put("id_card_address","");
//            //有效期限开始日期
//            cardNode.put("card_period_begin","");
//            //有效期限结束日期
//            cardNode.put("card_period_end","");
//            identityNode.put("id_card_info",cardNode);
//            subjectNode.put("identity_info",identityNode);
//        }
//        //是否是金融机构
//        //金融机构许可证信息  当主体是金融机构时
//        JSONObject jrNode = new JSONObject();
//        //金融机构类型 必填
//        jrNode.put("finance_type","");
//        List<String> list = Arrays.asList("");
//        List<String> imageIds = new ArrayList<>();
//        for(String str : list){
//            imageIds.add("");
//        }
//        //金融机构许可证图片  数组
//        jrNode.put("finance_license_pics",imageIds);
//        subjectNode.put("finance_institution_info",jrNode);
//        //主体信息
//        rootNode.put("subject_info",subjectNode);
//
//        //经营资料
//        JSONObject saleNode = new JSONObject();
//        //商户简称
//        saleNode.put("merchant_shortname","");
//        //客服电话
//        saleNode.put("service_phone","");
//        //经营场景
//        JSONObject weixinNode = new JSONObject();
//        //经营场景类型
//        weixinNode.put("sales_scenes_type","");
//        //小程序
//        JSONObject xiaochengxuNode = new JSONObject();
//        //服务商小程序APPID
//        xiaochengxuNode.put("mini_program_appid","");
//
//        //小程序截图
//        xiaochengxuNode.put("mini_program_pics",imageIds);
//        //小程序场景
//        weixinNode.put("mini_program_info",xiaochengxuNode);
//        saleNode.put("sales_info",weixinNode);
//        rootNode.put("business_info",saleNode);
//
//        //结算规则
//        JSONObject ruleNode = new JSONObject();
//        //入驻结算规则ID
//        ruleNode.put("settlement_id","");
//        //所属行业
//        ruleNode.put("qualification_type","");
//        //特殊资质图片
//        ruleNode.put("qualifications","");
//        //优惠费率活动ID
//        ruleNode.put("activities_id","");
//        //优惠费率活动值
//        ruleNode.put("activities_rate","");
//        rootNode.put("settlement_info",ruleNode);
//        //结算银行账户
//        JSONObject bankNode = new JSONObject();
//        //账户类型
//        bankNode.put("bank_account_type","");
//        //开户名称
//        bankNode.put("account_name","");
//        //开户银行
//        bankNode.put("account_bank","");
//        //开户银行省市编码
//        bankNode.put("bank_address_code","");
//        //开户银行联行号二选一
//        bankNode.put("bank_branch_id","");
//        //开户银行全称（含支行）二选一
//        bankNode.put("bank_name","");
//        //银行账号
//        bankNode.put("account_number","");
//        rootNode.put("bank_account_info",bankNode);
//        HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/");
//        httpPost.addHeader("Accept", "application/json");
//        httpPost.addHeader("Content-type","application/json; charset=utf-8");
//        ByteArrayOutputStream bos = new ByteArrayOutputStream();
//        ObjectMapper objectMapper = new ObjectMapper();
//        objectMapper.writeValue(bos, rootNode);
//        httpPost.setEntity(new StringEntity(bos.toString("UTF-8"), "UTF-8"));
//        CloseableHttpResponse response = wxPayClient.execute(httpPost);
//        String bodyAsString = EntityUtils.toString(response.getEntity());
//        System.out.println("返回数据"+bodyAsString);
//        JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
//        //查询申请状态用
//        String applyment_id = jsonObject.getString("applyment_id");
//
//        //设置商家申请信息
//        dto.setApplymentId(Convert.toLong(applyment_id));
//        dto.setApplymentState("APPLYMENT_STATE_EDITTING");
//        subMchMapper.updateById(dto);
//        log.info("返回数据：{}, 转换的JSON数据：{}",bodyAsString,jsonObject);
//        if(jsonObject.containsKey("code")) {
//            throw new SignatureException(jsonObject.getString("message"));
//        }
//        return R.ok();
//    }


//    /**
//     * 查询申请状态
//     * @param applymentId
//     * @return
//     * @throws GeneralSecurityException
//     * @throws IOException
//     * @throws NotFoundException
//     * @throws HttpCodeException
//     */
//    @PostMapping(value = "/searchApply")
//    public R<Map> searchApply(@RequestBody String applymentId) throws GeneralSecurityException, IOException, NotFoundException, HttpCodeException {
//        Map map = new HashMap();
//        //todo applymentId：申请时的业务编号
//        HttpGet httpGet = new HttpGet("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/applyment_id/" + applymentId);
//        httpGet.addHeader("Accept", "application/json");
//        CloseableHttpResponse response = wxPayClient.execute(httpGet);
//        String bodyAsString = EntityUtils.toString(response.getEntity());
//        JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
//        String business_code = jsonObject.getString("business_code");
//        String applyment_state = jsonObject.getString("applyment_state");
//        String applyment_state_msg = jsonObject.getString("applyment_state_msg");
//        if("APPLYMENT_STATE_CANCELED".equals(applyment_state)){
//            throw new SignatureException(applyment_state_msg);
//        }
//        if("APPLYMENT_STATE_EDITTING".equals(applyment_state)){
//            throw new SignatureException(applyment_state_msg);
//        }
//        if("APPLYMENT_STATE_AUDITING".equals(applyment_state)){
//            throw new SignatureException(applyment_state_msg+"--签约连接"+jsonObject.getString("sign_url"));
//        }
//        if("APPLYMENT_STATE_TO_BE_CONFIRMED".equals(applyment_state)){
//            throw new SignatureException(applyment_state_msg+"--签约连接"+jsonObject.getString("sign_url"));
//        }
//        if("APPLYMENT_STATE_TO_BE_SIGNED".equals(applyment_state)){
//            throw new SignatureException(applyment_state_msg+"--签约连接"+jsonObject.getString("sign_url"));
//        }
//        //驳回
//        if("APPLYMENT_STATE_REJECTED".equals(applyment_state)){
//            //组装驳回原因
//            JSONArray audit_detail = jsonObject.getJSONArray("audit_detail");
//            for(int i = 0;i<audit_detail.size();i++){
//                JSONObject jsonObject2 = audit_detail.getJSONObject(i);
//                System.out.println("jsonObject2 = " + jsonObject2);
//            }
//            throw new SignatureException(applyment_state_msg);
//        }
//
//        //设置商户的申请状态
//
////        shopRegist.setShopStatus(applyment_state);
////        shopRegist.setSearchErrInfo(bodyAsString);
////        shopRegistService.updateById(shopRegist);
//
//        if("APPLYMENT_STATE_FINISHED".equals(applyment_state)){
//            //创建新的商户信息
//
//        }
//        map.put("msg",applyment_state_msg);
//        return R.ok(map);
//    }

//    /**
//     * 获取子商户信息
//     * @return
//     */
//    @GetMapping("/subMchInfo")
//    public R<SubMchVO> getSubMchInfo() {
//        return R.ok(toolService.getSubMchInfo());
//    }

//    /**
//     * 特约商户进件-申请
//     */
//    @PostMapping(value = "/shopSend")
//    public R<Void> shopSend(@RequestBody String id) throws GeneralSecurityException, IOException, HttpCodeException, NotFoundException, URISyntaxException {
//        JSONObject jsonObject1 = JSONObject.parseObject(id);
//        String id1 = jsonObject1.getString("id");
//        ShopRegist shopRegist = shopRegistService.getById(id1);
//
//        //组装微信报文
//        //String uuid = UUID.randomUUID().toString().replaceAll("-", "").toLowerCase();
//        JSONObject  rootNode = new JSONObject();//发送json
//        rootNode.put("business_code",shopRegist.getBusinessCode());//业务申请编号必填
//        //超级管理员信息
//        if("SUPER".equals(shopRegist.getContactType())){
//            JSONObject  adminNodeSUPER = new JSONObject();
//            adminNodeSUPER.put("contact_type",shopRegist.getContactType());//超级管理员类型
//            adminNodeSUPER.put("contact_name",WechatPay.rsaEncryptOAEP(shopRegist.getContactName()));//超级管理员姓名
//            adminNodeSUPER.put("contact_id_doc_type",shopRegist.getContactIdDocType());//超级管理员证件类型
//            adminNodeSUPER.put("contact_id_number",WechatPay.rsaEncryptOAEP(shopRegist.getContactIdNumber()));//超级管理员身份证件号码
//            adminNodeSUPER.put("contact_id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getContactIdDocCopy()));//超级管理员证件正面照片
//            adminNodeSUPER.put("contact_id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getContactIdDocCopyBack()));//超级管理员证件反面照片
//            adminNodeSUPER.put("contact_period_begin", DateUtils.formatDate(shopRegist.getContactPeriodBegin(),"yyyy-MM-dd"));//超级管理员证件有效期开始时间
//            adminNodeSUPER.put("contact_period_end",DateUtils.formatDate(shopRegist.getContactPeriodEnd(),"yyyy-MM-dd")); //超级管理员证件有效期结束时间
//            adminNodeSUPER.put("business_authorization_letter",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getBusinessAuthorizationLetter()));//业务办理授权函
//            adminNodeSUPER.put("openid",shopRegist.getOpenid()==null?"":shopRegist.getOpenid());//超级管理员微信OpenID 可不填
//            adminNodeSUPER.put("mobile_phone",WechatPay.rsaEncryptOAEP(shopRegist.getMobilePhone()));//联系手机
//            adminNodeSUPER.put("contact_email",WechatPay.rsaEncryptOAEP(shopRegist.getContactEmail()));//联系邮箱
//            rootNode.put("contact_info",adminNodeSUPER);
//        }else{
//            JSONObject  adminNodeLEGAL = new JSONObject();
//            adminNodeLEGAL.put("contact_type",shopRegist.getContactType());//超级管理员类型
//            adminNodeLEGAL.put("contact_name",WechatPay.rsaEncryptOAEP(shopRegist.getContactName()));//超级管理员姓名
//            adminNodeLEGAL.put("openid",shopRegist.getOpenid());//超级管理员微信OpenID 可不填
//            adminNodeLEGAL.put("mobile_phone",WechatPay.rsaEncryptOAEP(shopRegist.getMobilePhone()));//联系手机
//            adminNodeLEGAL.put("contact_email",WechatPay.rsaEncryptOAEP(shopRegist.getContactEmail()));//联系邮箱
//            rootNode.put("contact_info",adminNodeLEGAL);
//        }
//
//        //判断主体类型
//        String subjectType = shopRegist.getSubjectType();
//        JSONObject subjectNode = new JSONObject();
//        subjectNode.put("subject_type",shopRegist.getSubjectType());//超级管理员类型
//        subjectNode.put("finance_institution", "true".equals(shopRegist.getFinanceInstitution()));//是否是金融机构
//        //个体户
//        if("SUBJECT_TYPE_INDIVIDUAL".equals(subjectType)){
//            //营业执照 主体为个体户/企业，必填
//            JSONObject licenseNode = new JSONObject();
//            licenseNode.put("license_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getLicenseCopy()));//营业执照照片 必填
//            licenseNode.put("license_number",shopRegist.getLicenseNumber());//注册号/统一社会信用代码 必填
//            licenseNode.put("merchant_name",shopRegist.getMerchantName());//商户名称 必填
//            licenseNode.put("legal_person",shopRegist.getLegalPerson());//个体户经营者/法人姓名 必填
//            licenseNode.put("license_address",shopRegist.getLicenseAddress());//注册地址  条件选填
//            licenseNode.put("period_begin",DateUtils.formatDate(shopRegist.getPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期  条件选填
//            licenseNode.put("period_end",DateUtils.formatDate(shopRegist.getPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期  条件选填
//            subjectNode.put("business_license_info",licenseNode);
//
//            //经营者/法人身份证件 必填
//            JSONObject  identityNode = new JSONObject();
//            identityNode.put("id_holder_type",shopRegist.getIdHolderType());//证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            //identityNode.put("owner","true".equals(shopRegist.getOwner()));//经营者/法人是否为受益人
//            if("LEGAL".equals(shopRegist.getIdHolderType())){
//                identityNode.put("id_doc_type",shopRegist.getIdDocType()); //证件类型  当证件持有人类型为法人时，填写。其他情况，无需上传。
//            }
//            if("SUPER".equals(shopRegist.getIdHolderType())){
//                identityNode.put("authorize_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getAuthorizeLetterCopy())); //法定代表人说明函  当证件持有人类型为经办人时，必须上传。其他情况，无需上传。
//            }
//
//            if("LEGAL".equals(shopRegist.getIdHolderType())&&"IDENTIFICATION_TYPE_IDCARD".equals(shopRegist.getIdDocType())){
//                JSONObject  cardNode = new JSONObject();
//                //身份证信息  当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//                cardNode.put("id_card_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardCopy()));//身份证人像面照片
//                cardNode.put("id_card_national",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardNational()));//身份证国徽面照片
//                cardNode.put("id_card_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardName()));//身份证姓名
//                cardNode.put("id_card_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardNumber()));//身份证号码
//                cardNode.put("card_period_begin",DateUtils.formatDate(shopRegist.getCardPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("card_period_end",DateUtils.formatDate(shopRegist.getCardPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_card_info",cardNode);
//            }else{
//                //其他类型证件信息  当证件持有人类型为经营者/法人且证件类型不为“身份证”时填写。
//                JSONObject  cardNode = new JSONObject();
//                cardNode.put("id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopy()));//身份证人像面照片
//                cardNode.put("id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopyBack()));//证件反面照片 1、若证件类型为往来通行证、外国人居留证、港澳居住证、台湾居住证时，上传证件反面照片。2、若证件类型为护照，无需上传反面照片
//                cardNode.put("id_doc_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocName()));//证件姓名
//                cardNode.put("id_doc_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocNumber()));//证件号码
//                cardNode.put("doc_period_begin",DateUtils.formatDate(shopRegist.getDocPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("doc_period_end",DateUtils.formatDate(shopRegist.getDocPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_doc_info",cardNode);
//            }
//            subjectNode.put("identity_info",identityNode);
//
//
//        }else if("SUBJECT_TYPE_ENTERPRISE".equals(subjectType)){//企业
//            //营业执照 主体为个体户/企业，必填
//            JSONObject licenseNode = new JSONObject();
//            licenseNode.put("license_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getLicenseCopy()));//营业执照照片 必填
//            licenseNode.put("license_number",shopRegist.getLicenseNumber());//注册号/统一社会信用代码 必填
//            licenseNode.put("merchant_name",shopRegist.getMerchantName());//商户名称 必填
//            licenseNode.put("legal_person",shopRegist.getLegalPerson());//个体户经营者/法人姓名 必填
//            licenseNode.put("license_address",shopRegist.getLicenseAddress());//注册地址  条件选填
//            licenseNode.put("period_begin",DateUtils.formatDate(shopRegist.getPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期  条件选填
//            licenseNode.put("period_end",DateUtils.formatDate(shopRegist.getPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期  条件选填
//            subjectNode.put("business_license_info",licenseNode);
//
//            //最终受益人信息列表(UBO)  仅企业需要填写。
//            JSONArray jsonArray = new JSONArray();
//            JSONObject ownerNode = new JSONObject();
//            ownerNode.put("ubo_id_doc_type",shopRegist.getUboIdDocType());//证件类型
//            ownerNode.put("ubo_id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getUboIdDocCopy()));//证件正面照片
//            ownerNode.put("ubo_id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getUboIdDocCopyBack()));//证件反面照片 若证件类型为身份证，请上传国徽面照片。3、若证件类型为护照，无需上传反面照片。
//            ownerNode.put("ubo_id_doc_name",WechatPay.rsaEncryptOAEP(shopRegist.getUboIdDocName()));//证件姓名
//            ownerNode.put("ubo_id_doc_number",WechatPay.rsaEncryptOAEP(shopRegist.getUboIdDocNumber()));//证件号码
//            ownerNode.put("ubo_id_doc_address",WechatPay.rsaEncryptOAEP(shopRegist.getUboIdDocAddress()));//证件居住地址
//            ownerNode.put("ubo_period_begin",DateUtils.formatDate(shopRegist.getUboPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//            ownerNode.put("ubo_period_end",DateUtils.formatDate(shopRegist.getUboPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//            jsonArray.add(ownerNode);
//            subjectNode.put("ubo_info_list",jsonArray);
//
//            //经营者/法人身份证件 必填
//            JSONObject  identityNode = new JSONObject();
//            identityNode.put("id_holder_type",shopRegist.getIdHolderType());//证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            identityNode.put("owner","true".equals(shopRegist.getOwner()));//经营者/法人是否为受益人
//            if("LEGAL".equals(shopRegist.getIdHolderType())){
//                identityNode.put("id_doc_type",shopRegist.getIdDocType()); //证件类型  当证件持有人类型为法人时，填写。其他情况，无需上传。
//            }
//            if("SUPER".equals(shopRegist.getIdHolderType())){
//                identityNode.put("authorize_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getAuthorizeLetterCopy())); //法定代表人说明函  当证件持有人类型为经办人时，必须上传。其他情况，无需上传。
//            }
//
//            if("LEGAL".equals(shopRegist.getIdHolderType())&&"IDENTIFICATION_TYPE_IDCARD".equals(shopRegist.getIdDocType())){
//                JSONObject  cardNode = new JSONObject();
//                //身份证信息  当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//                cardNode.put("id_card_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardCopy()));//身份证人像面照片
//                cardNode.put("id_card_national",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardNational()));//身份证国徽面照片
//                cardNode.put("id_card_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardName()));//身份证姓名
//                cardNode.put("id_card_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardNumber()));//身份证号码
//                //只有企业传
//                cardNode.put("id_card_address",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardAddress()));//身份证居住地址 主体类型为企业时，需要填写。其他主体类型，无需上传。
//                cardNode.put("card_period_begin",DateUtils.formatDate(shopRegist.getCardPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("card_period_end",DateUtils.formatDate(shopRegist.getCardPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_card_info",cardNode);
//            }else{
//                //其他类型证件信息  当证件持有人类型为经营者/法人且证件类型不为“身份证”时填写。
//                JSONObject  cardNode = new JSONObject();
//                cardNode.put("id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopy()));//身份证人像面照片
//                cardNode.put("id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopyBack()));//证件反面照片 1、若证件类型为往来通行证、外国人居留证、港澳居住证、台湾居住证时，上传证件反面照片。2、若证件类型为护照，无需上传反面照片
//                cardNode.put("id_doc_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocName()));//证件姓名
//                cardNode.put("id_doc_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocNumber()));//证件号码
//                cardNode.put("id_doc_address",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocAddress()));//证件居住地址主体类型为企业时，需要填写。其他主体类型，无需上传
//                cardNode.put("doc_period_begin",DateUtils.formatDate(shopRegist.getDocPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("doc_period_end",DateUtils.formatDate(shopRegist.getDocPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_doc_info",cardNode);
//            }
//            subjectNode.put("identity_info",identityNode);
//
//
//        }else if("SUBJECT_TYPE_GOVERNMENT".equals(subjectType)){//政府
//            subjectNode.put("certificate_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getCertificateLetterCopy()));//单位证明函照片 主体类型为政府机关、事业单位选传
//            //登记证书 主体为政府机关/事业单位/其他组织时，必填。
//            JSONObject certNode = new JSONObject();
//            certNode.put("cert_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getCertCopy()));//营业执照照片 必填
//            certNode.put("cert_type",shopRegist.getCertType());//登记证书类型
//            certNode.put("cert_number",shopRegist.getCertNumber());//证书号
//            certNode.put("merchant_name",shopRegist.getMerchantName2());//商户名称
//            certNode.put("company_address",shopRegist.getCompanyAddress());//注册地址
//            certNode.put("legal_person",shopRegist.getLegalPerson2());//法定代表人
//            certNode.put("period_begin",DateUtils.formatDate(shopRegist.getPeriodBegin2(),"yyyy-MM-dd"));//有效期限开始日期
//            certNode.put("period_end",DateUtils.formatDate(shopRegist.getPeriodEnd2(),"yyyy-MM-dd"));//有效期限结束日期
//            subjectNode.put("certificate_info",certNode);
//            //经营者/法人身份证件 必填
//            JSONObject  identityNode = new JSONObject();
//            identityNode.put("id_holder_type",shopRegist.getIdHolderType());//证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            //identityNode.put("owner","true".equals(shopRegist.getOwner()));//经营者/法人是否为受益人
//            if("LEGAL".equals(shopRegist.getIdHolderType())){
//                identityNode.put("id_doc_type",shopRegist.getIdDocType()); //证件类型  当证件持有人类型为法人时，填写。其他情况，无需上传。
//            }
//            if("SUPER".equals(shopRegist.getIdHolderType())){
//                identityNode.put("authorize_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getAuthorizeLetterCopy())); //法定代表人说明函  当证件持有人类型为经办人时，必须上传。其他情况，无需上传。
//            }
//
//            if("LEGAL".equals(shopRegist.getIdHolderType())&&"IDENTIFICATION_TYPE_IDCARD".equals(shopRegist.getIdDocType())){
//                JSONObject  cardNode = new JSONObject();
//                //身份证信息  当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//                cardNode.put("id_card_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardCopy()));//身份证人像面照片
//                cardNode.put("id_card_national",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardNational()));//身份证国徽面照片
//                cardNode.put("id_card_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardName()));
//
//
//                //身份证姓名
//                cardNode.put("id_card_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardNumber()));//身份证号码
//                cardNode.put("card_period_begin",DateUtils.formatDate(shopRegist.getCardPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("card_period_end",DateUtils.formatDate(shopRegist.getCardPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_card_info",cardNode);
//            }else{
//                //其他类型证件信息  当证件持有人类型为经营者/法人且证件类型不为“身份证”时填写。
//                JSONObject  cardNode = new JSONObject();
//                cardNode.put("id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopy()));//身份证人像面照片
//                cardNode.put("id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopyBack()));//证件反面照片 1、若证件类型为往来通行证、外国人居留证、港澳居住证、台湾居住证时，上传证件反面照片。2、若证件类型为护照，无需上传反面照片
//                cardNode.put("id_doc_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocName()));//证件姓名
//                cardNode.put("id_doc_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocNumber()));//证件号码
//                cardNode.put("doc_period_begin",DateUtils.formatDate(shopRegist.getDocPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("doc_period_end",DateUtils.formatDate(shopRegist.getDocPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_doc_info",cardNode);
//            }
//            subjectNode.put("identity_info",identityNode);
//
//
//
//        }else if("SUBJECT_TYPE_INSTITUTIONS".equals(subjectType)){//事业单位
//            subjectNode.put("certificate_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getCertificateLetterCopy()));//单位证明函照片 主体类型为政府机关、事业单位选传
//            //登记证书 主体为政府机关/事业单位/其他组织时，必填。
//            JSONObject certNode = new JSONObject();
//            certNode.put("cert_copy", WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getCertCopy()));//营业执照照片 必填
//            certNode.put("cert_type",shopRegist.getCertType());//登记证书类型
//            certNode.put("cert_number",shopRegist.getCertNumber());//证书号
//            certNode.put("merchant_name",shopRegist.getMerchantName2());//商户名称
//            certNode.put("company_address",shopRegist.getCompanyAddress());//注册地址
//            certNode.put("legal_person",shopRegist.getLegalPerson2());//法定代表人
//            certNode.put("period_begin",DateUtils.formatDate(shopRegist.getPeriodBegin2(),"yyyy-MM-dd"));//有效期限开始日期
//            certNode.put("period_end",DateUtils.formatDate(shopRegist.getPeriodEnd2(),"yyyy-MM-dd"));//有效期限结束日期
//            subjectNode.put("certificate_info",certNode);
//            //经营者/法人身份证件 必填
//            JSONObject  identityNode = new JSONObject();
//            identityNode.put("id_holder_type",shopRegist.getIdHolderType());//证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            //identityNode.put("owner","true".equals(shopRegist.getOwner()));//经营者/法人是否为受益人
//            if("LEGAL".equals(shopRegist.getIdHolderType())){
//                identityNode.put("id_doc_type",shopRegist.getIdDocType()); //证件类型  当证件持有人类型为法人时，填写。其他情况，无需上传。
//            }
//            if("SUPER".equals(shopRegist.getIdHolderType())){
//                identityNode.put("authorize_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getAuthorizeLetterCopy())); //法定代表人说明函  当证件持有人类型为经办人时，必须上传。其他情况，无需上传。
//            }
//
//            if("LEGAL".equals(shopRegist.getIdHolderType())&&"IDENTIFICATION_TYPE_IDCARD".equals(shopRegist.getIdDocType())){
//                JSONObject  cardNode = new JSONObject();
//                //身份证信息  当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//                cardNode.put("id_card_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardCopy()));//身份证人像面照片
//                cardNode.put("id_card_national",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardNational()));//身份证国徽面照片
//                cardNode.put("id_card_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardName()));//身份证姓名
//                cardNode.put("id_card_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardNumber()));//身份证号码
//                cardNode.put("card_period_begin",DateUtils.formatDate(shopRegist.getCardPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("card_period_end",DateUtils.formatDate(shopRegist.getCardPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_card_info",cardNode);
//            }else{
//                //其他类型证件信息  当证件持有人类型为经营者/法人且证件类型不为“身份证”时填写。
//                JSONObject  cardNode = new JSONObject();
//                cardNode.put("id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopy()));//身份证人像面照片
//                cardNode.put("id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopyBack()));//证件反面照片 1、若证件类型为往来通行证、外国人居留证、港澳居住证、台湾居住证时，上传证件反面照片。2、若证件类型为护照，无需上传反面照片
//                cardNode.put("id_doc_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocName()));//证件姓名
//                cardNode.put("id_doc_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocNumber()));//证件号码
//                cardNode.put("doc_period_begin",DateUtils.formatDate(shopRegist.getDocPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("doc_period_end",DateUtils.formatDate(shopRegist.getDocPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_doc_info",cardNode);
//            }
//            subjectNode.put("identity_info",identityNode);
//
//
//
//        }else{//社会组织
//            //登记证书 主体为政府机关/事业单位/其他组织时，必填。
//            JSONObject certNode = new JSONObject();
//            certNode.put("cert_copy",shopRegist.getCertCopy());//营业执照照片 必填
//            certNode.put("cert_type",shopRegist.getCertType());//登记证书类型
//            certNode.put("cert_number",shopRegist.getCertNumber());//证书号
//            certNode.put("merchant_name",shopRegist.getMerchantName2());//商户名称
//            certNode.put("company_address",shopRegist.getCompanyAddress());//注册地址
//            certNode.put("legal_person",shopRegist.getLegalPerson2());//法定代表人
//            certNode.put("period_begin",DateUtils.formatDate(shopRegist.getPeriodBegin2(),"yyyy-MM-dd"));//有效期限开始日期
//            certNode.put("period_end",DateUtils.formatDate(shopRegist.getPeriodEnd2(),"yyyy-MM-dd"));//有效期限结束日期
//            subjectNode.put("certificate_info",certNode);
//
//            //经营者/法人身份证件 必填
//            JSONObject  identityNode = new JSONObject();
//            identityNode.put("id_holder_type",shopRegist.getIdHolderType());//证件持有人类型 条件选填 主体类型为政府机关、事业单位时选传：
//            //identityNode.put("owner","true".equals(shopRegist.getOwner()));//经营者/法人是否为受益人
//            if("LEGAL".equals(shopRegist.getIdHolderType())){
//                identityNode.put("id_doc_type",shopRegist.getIdDocType()); //证件类型  当证件持有人类型为法人时，填写。其他情况，无需上传。
//            }
//            if("SUPER".equals(shopRegist.getIdHolderType())){
//                identityNode.put("authorize_letter_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getAuthorizeLetterCopy())); //法定代表人说明函  当证件持有人类型为经办人时，必须上传。其他情况，无需上传。
//            }
//
//            if("LEGAL".equals(shopRegist.getIdHolderType())&&"IDENTIFICATION_TYPE_IDCARD".equals(shopRegist.getIdDocType())){
//                JSONObject  cardNode = new JSONObject();
//                //身份证信息  当证件持有人类型为经营者/法人且证件类型为“身份证”时填写。
//                cardNode.put("id_card_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardCopy()));//身份证人像面照片
//                cardNode.put("id_card_national",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdCardNational()));//身份证国徽面照片
//                cardNode.put("id_card_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardName()));//身份证姓名
//                cardNode.put("id_card_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdCardNumber()));//身份证号码
//                cardNode.put("card_period_begin",DateUtils.formatDate(shopRegist.getCardPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("card_period_end",DateUtils.formatDate(shopRegist.getCardPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_card_info",cardNode);
//            }else{
//                //其他类型证件信息  当证件持有人类型为经营者/法人且证件类型不为“身份证”时填写。
//                JSONObject  cardNode = new JSONObject();
//                cardNode.put("id_doc_copy",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopy()));//身份证人像面照片
//                cardNode.put("id_doc_copy_back",WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+shopRegist.getIdDocCopyBack()));//证件反面照片 1、若证件类型为往来通行证、外国人居留证、港澳居住证、台湾居住证时，上传证件反面照片。2、若证件类型为护照，无需上传反面照片
//                cardNode.put("id_doc_name",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocName()));//证件姓名
//                cardNode.put("id_doc_number",WechatPay.rsaEncryptOAEP(shopRegist.getIdDocNumber()));//证件号码
//                cardNode.put("doc_period_begin",DateUtils.formatDate(shopRegist.getDocPeriodBegin(),"yyyy-MM-dd"));//有效期限开始日期
//                cardNode.put("doc_period_end",DateUtils.formatDate(shopRegist.getDocPeriodEnd(),"yyyy-MM-dd"));//有效期限结束日期
//                identityNode.put("id_doc_info",cardNode);
//            }
//            subjectNode.put("identity_info",identityNode);
//
//        }
//        //是否是金融机构
//        if("true".equals(shopRegist.getFinanceInstitution())){
//            //金融机构许可证信息  当主体是金融机构时
//            JSONObject jrNode = new JSONObject();
//            jrNode.put("finance_type",shopRegist.getFinanceType());//金融机构类型 必填
//            List<String> list = Arrays.asList(shopRegist.getFinanceLicensePics().split(","));
//            List<String> imageIds = new ArrayList<>();
//            for(String str : list){
//                imageIds.add(WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+str));
//            }
//            jrNode.put("finance_license_pics",imageIds);//金融机构许可证图片  数组
//            subjectNode.put("finance_institution_info",jrNode);
//        }
//        //主体信息
//        rootNode.put("subject_info",subjectNode);
//
//        //经营资料
//        JSONObject saleNode = new JSONObject();
//        saleNode.put("merchant_shortname",shopRegist.getMerchantShortname());//商户简称
//        saleNode.put("service_phone",shopRegist.getServicePhone());//客服电话
//        //经营场景
//        JSONObject weixinNode = new JSONObject();
//        weixinNode.put("sales_scenes_type",Arrays.asList(shopRegist.getSalesScenesType().split(",")));//经营场景类型
//        //小程序
//        JSONObject xiaochengxuNode = new JSONObject();
//        xiaochengxuNode.put("mini_program_appid",shopRegist.getMiniProgramAppid());//服务商小程序APPID
//        List<String> list = Arrays.asList(shopRegist.getMiniProgramPics().split(","));
//        List<String> imageIds = new ArrayList<>();
//        for(String str : list){
//            imageIds.add(WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+str));
//        }
//        xiaochengxuNode.put("mini_program_pics",imageIds);//小程序截图
//        weixinNode.put("mini_program_info",xiaochengxuNode);//小程序场景
//        saleNode.put("sales_info",weixinNode);
//        rootNode.put("business_info",saleNode);
//
//        //结算规则
//        JSONObject ruleNode = new JSONObject();
//        ruleNode.put("settlement_id",shopRegist.getSettlementId());//入驻结算规则ID
//        ruleNode.put("qualification_type",shopRegist.getQualificationType());//所属行业
//        List<String> list1 = Arrays.asList(shopRegist.getQualifications().split(","));
//        List<String> imageIdss = new ArrayList<>();
//        for(String str : list1){
//            imageIdss.add(WechatPay.upload(wxPayBean.getLocaldomain(),wxPayBean.getLocaldomain()+str));
//        }
//        ruleNode.put("qualifications",imageIdss);//特殊资质图片
//        ruleNode.put("activities_id",shopRegist.getActivitiesId());//优惠费率活动ID
//        ruleNode.put("activities_rate",shopRegist.getActivitiesRate());//优惠费率活动值
//        rootNode.put("settlement_info",ruleNode);
//        //结算银行账户
//        JSONObject bankNode = new JSONObject();
//        bankNode.put("bank_account_type",shopRegist.getBankAccountType());//账户类型
//        bankNode.put("account_name",WechatPay.rsaEncryptOAEP(shopRegist.getAccountName()));//开户名称
//        bankNode.put("account_bank",shopRegist.getAccountBank());//开户银行
//        bankNode.put("bank_address_code",shopRegist.getBankAddressCode());//开户银行省市编码
//        bankNode.put("bank_branch_id",shopRegist.getBankBranchId());//开户银行联行号二选一
//        bankNode.put("bank_name",shopRegist.getBankName());//开户银行全称（含支行）二选一
//        bankNode.put("account_number",WechatPay.rsaEncryptOAEP(shopRegist.getAccountNumber()));//银行账号
//        rootNode.put("bank_account_info",bankNode);
//        CloseableHttpClient httpClient = WechatPay.getHttpClient();
//        HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/");
//        httpPost.addHeader("Accept", "application/json");
//        httpPost.addHeader("Content-type","application/json; charset=utf-8");
//        ByteArrayOutputStream bos = new ByteArrayOutputStream();
//        ObjectMapper objectMapper = new ObjectMapper();
//        objectMapper.writeValue(bos, rootNode);
//        httpPost.setEntity(new StringEntity(bos.toString("UTF-8"), "UTF-8"));
//        CloseableHttpResponse response = httpClient.execute(httpPost);
//        String bodyAsString = EntityUtils.toString(response.getEntity());
//        System.out.println("返回数据"+bodyAsString);
//        JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
//        String applyment_id = jsonObject.getString("applyment_id");//查询申请状态用
//        shopRegist.setApplymentId(applyment_id);
//        shopRegist.setShopStatus("APPLYMENT_STATE_EDITTING");
//        shopRegistService.updateById(shopRegist);
//        if(jsonObject.containsKey("code")) {
//            System.out.println(jsonObject.getString("message"));
//            return Result.error(jsonObject.getString("message"));
//        }
//        return R.ok();
//    }
}
